package com.um.jdy.ykc.command;

import com.um.jdy.ykc.utils.RadixsUtil;
import lombok.Data;

/**
 * 充电桩主动申请启动充电（充电桩->运营平台）
 *
 * @author 甘天伟
 * @since 2022/6/28
 * 版权所有 广州优匠科技有限公司
 */
@Data
public class Cmd31DeviceStartChargeRequest extends YkcCommand {

    /**
     * 桩编码：7个字节
     */
    private String code;

    /**
     * 枪号：1个字节
     */
    private int gunNo;

    /**
     * 启动方式：1个字节
     */
    private int startType;

    /**
     * 是否需要密码：1个字节
     */
    private boolean needPassword;

    /**
     * 账号或者物理卡号：8个字节
     */
    private String cardNo;

    /**
     * 输入密码：16个字节
     */
    private String password;

    /**
     * VIN 码：17个字节
     */
    private String vin;

    @Override
    public void parseBytes(byte[] bytes){
        super.parseBytes(bytes);
        code = RadixsUtil.bytesToHexString(readBytes(data,0,7));
        gunNo = RadixsUtil.byteToInteger(data[7]);
        startType = RadixsUtil.byteToInteger(data[8]);
        needPassword = RadixsUtil.byteToInteger(data[9]) == 1;
        cardNo = RadixsUtil.bytesToHexString(readBytes(data,10,8));
        //TODO 对用户输入的密码进行16 位MD5 加密，采用小写上传
        password = RadixsUtil.bytesToAscii(readBytes(data,18,16));
        vin = RadixsUtil.bytesToAscii(readBytes(data,34,17)).trim();

        code = RadixsUtil.getCode(code);
    }

}
